package city.spring.modules.work.entity;

import city.spring.configure.mybatis.FillCurrentUser;
import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;

/**
 * 实体类：上班计划表（排班结果主体记录）
 *
 * @author 侯坤林
 * @date 2020-06-04 16:43:43
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("work_schedule")
public class WorkScheduleEntity implements Serializable {

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 排班方案所属组织机构
     */
    @FillCurrentUser(FillCurrentUser.Type.OrgId)
    @TableField(fill = FieldFill.INSERT, updateStrategy = FieldStrategy.NEVER)
    private String orgId;

    /**
     * 关联的排班计划ID
     */
    private String workPlanId;

    /**
     * 上班计划表名称（排班结果名称）
     */
    private String title;

    /**
     * 计划开始执行日期
     */
    private LocalDate startDate;

    /**
     * 计划结束执行日期
     */
    private LocalDate endDate;

    /**
     * 是否启用
     */
    private Boolean isEnabled;

    /**
     * 更新次数（乐观锁）
     */
    @Version
    private Integer version;

    /**
     * 创建时间
     */
    @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
    private Date gmtCreated;

    /**
     * 更新时间
     */
    @TableField(insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
    private Date gmtModified;

}